
Initiate a state change on the named cluster, such as a shutdown or restart.
MarkLogic Server returns status code 202 (Accepted). The response body includes a list of restarted hosts and their last start times.
manage-admin role, or the following
privilege: http://marklogic.com/xdmp/privileges/manage-admin
The POST body must contain the state parameter, as HTML form data. For
example: state=restart.
You cannot initiate a state change on a foreign cluster.
You can address the local cluster at /manage/v2, without specifying the
full /manage/v2/clusters/{id|name}.
$ curl --anyauth --user user:password -X POST --data "state=shutdown" \
http://localhost:8002/manage/v2/clusters/123409234245
==> Initiate a shutdown of the local cluster using the cluster id.
MarkLogic responds with output similar to the following. This output
represents a 2-host cluster.
Content-type: application/xml
Server: MarkLogic
Content-Length: 160
Connection: Keep-Alive
Keep-Alive: timeout=5
HTTP/1.1 202 Accepted
Content-type: application/xml
Cache-Control: no-cache
Expires: -1
Server: MarkLogic
Content-Length: 313
Connection: Keep-Alive
Keep-Alive: timeout=5
<shutdown xmlns="http://marklogic.com/manage">
<last-startup host-id="13544732455686476949">
2013-09-21T09:45:07.936648-07:00</last-startup>
<last-startup host-id="11346873982344721834">
2013-09-21T09:45:07.57723-07:00
</last-startup>
<message>Shutdown of cluster (17224434944267874968) initiated.</message>
</shutdown>
The following is the equivalent JSON output:
{ "shutdown": {
"last-startup": [
{
"host-id": "13544732455686476949",
"value": "2013-09-21T09:55:40.567285-07:00"
},
{
"host-id": "11346873982344721834",
"value": "2013-09-21T09:55:40.567285-07:00"
}
],
"link": {
"kindref": "timestamp",
"uriref": "/admin/v1/timestamp"
},
"message": "Check for new timestamp to verify host restart."
} }
$ curl --anyauth --user user:password -i -X POST --data "state=restart" \
http://localhost:8002/manage/v2
==> Initiate a restart of the local cluster, using the /manage/v2 shorthand.
Use the returned restart information and the timestamp service to
determine when the restart is complete. The output below represents a
2-host cluster.
Content-type: application/xml
Server: MarkLogic
Content-Length: 160
Connection: Keep-Alive
Keep-Alive: timeout=5
HTTP/1.1 202 Accepted
Content-type: application/xml
Cache-Control: no-cache
Expires: -1
Location: /admin/v1/timestamp
Server: MarkLogic
Content-Length: 383
Connection: Keep-Alive
Keep-Alive: timeout=5
<restart xmlns="http://marklogic.com/manage">
<last-startup host-id="13544732455686476949">
2013-09-21T09:44:49.498658-07:00
</last-startup>
<last-startup host-id="11346873982344721834">
2013-09-21T09:44:49.434052-07:00
</last-startup>
<link>
<kindref>timestamp</kindref>
<uriref>/admin/v1/timestamp</uriref>
</link>
<message>Check for new timestamp to verify host restart.</message>
</restart>
The following is the equivalent JSON output:
{ "restart": {
"last-startup": [
{
"host-id": "13544732455686476949",
"value": "2013-09-21T09:55:40.567285-07:00"
},
{
"host-id": "11346873982344721834",
"value": "2013-09-21T09:55:40.567285-07:00"
}
],
"link": {
"kindref": "timestamp",
"uriref": "/admin/v1/timestamp"
},
"message": "Check for new timestamp to verify host restart."
} }
$ curl --anyauth --user user:password -X POST -i --data "state=restart" \
-H "Accept: application/json" http://localhost:8002/manage/v2
==> Initiate a restart of the local cluster, using the /manage/v2 shorthand.
Output is returned as JSON, due to the Accept header. The output below
represents a 2-host cluster.
<apidoc:function name="/manage/v2/servers/{id|name}" http-verb="DELETE"
lib="manage" category="Management API" bucket="REST Resources API"
subcategory="App Servers">
<apidoc:summary>
This resource address deletes the specified App Server from the specified group.
</apidoc:summary>
<apidoc:params>
<apidoc:param name="group-id" type="string">
The id or name of the group to which the App Server belongs. This
parameter is required.
</apidoc:param>
<apidoc:param name="format" type="string">
The format of the posted data. Can be either
<code>html</code>, <code>json</code>, or <code>xml</code> (default). This value overrides the
Accept header if both are present.
</apidoc:param>
</apidoc:params>
<apidoc:headers>
<apidoc:header name="Accept" type="request">
The expected MIME type of the request body. If the <code>format?</code>
parameter is present, it takes precedence over the Accept header.
</apidoc:header>
</apidoc:headers>
<apidoc:response>
Upon success, MarkLogic Server returns a status code 202 (Accepted) if
the request causes a restart, or status code 204 (No Content)
if the request does not cause a restart. When 202 is returned, the standard
<code>restart</code> payload body is also returned.
If the payload is malformed or the group does not exist,
a status code of 400 (Bad Request) is returned. A status code
of 401 (Unauthorized) is returned if the user does not have the necessary
privileges.
</apidoc:response>
<apidoc:privilege>
This operation requires the <code>manage-admin</code> role, or the
following privilege:
<p><code>http://marklogic.com/xdmp/privileges/manage-admin</code></p>
</apidoc:privilege>
<apidoc:example><pre xml:space="preserve"><![CDATA[
curl -X DELETE --anyauth -u $admin:$admin -H "Accept: application/json" \
http://localhost:8002/manage/v2/servers/myServer?group-id=Default&format=json
==> Deletes the HTTP App Server, named "myServer," from the Default group.
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.